package com.at.bigdata.spark.core.rdd.operator.action

import org.apache.spark.{SparkConf, SparkContext}

/**
 *
 * @author cdhuangchao3
 * @date 2023/3/19 9:52 PM
 */
object Spark04_RDD_collect {

  def main(args: Array[String]): Unit = {
    // 环境准备
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("RDD")
    val sc = new SparkContext(sparkConf)

    // TODO 算子 - 行动算子
    //    触发作业（Job）执行的方法
    //    底层调用 环境对象 的runJosb方法
    //    底层会创建 ActiveJon，并提交执行
    val rdd = sc.makeRDD(List(1, 1, 3, 4))
    println(rdd.countByValue())

    val rdd2 = sc.makeRDD(List(
      ("a", 1),("a", 2),("a", 3)
    ))

    val stringToLong = rdd2.countByKey()
    println(stringToLong)

    sc.stop()
  }

}
